package br.com.edumobi.activities;

import android.content.Intent;
import android.os.Bundle;

import br.com.edumobi.R;
import br.com.edumobi.dados.modelos.Aluno;
import br.com.edumobi.excecoes.ExcecaoAutenticacaoMalsucedida;
import br.com.edumobi.fragments.LoginFragment;
import br.com.edumobi.P;

public class LoginActivity extends GenericaActivity implements LoginFragment.AcoesLoginFragment {

    private Intent intentDashboard;
    private Intent intentCadastrese;
    private Intent intentEsqueciASenha;

    private static final int REQUEST_CODE_DASHBOARD = 1;
    private static final int REQUEST_CODE_CADASTRESE = 2;
    private static final int REQUEST_CODE_ESQUECI_A_SENHA = 3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case REQUEST_CODE_DASHBOARD:
                intentDashboard = null;
                break;
            case REQUEST_CODE_CADASTRESE:
                intentCadastrese = null;
                break;
            case REQUEST_CODE_ESQUECI_A_SENHA:
                intentEsqueciASenha = null;
                break;
            default:
                break;
        }
    }

    @Override
    public Aluno entrar(String email, String senha) {
        try {
            return nuvem.autenticarAluno(email, senha);
        } catch (ExcecaoAutenticacaoMalsucedida excecao) {
            return null;
        }
    }

    @Override
    public void irCadastrese() {
        if (intentCadastrese == null) {
            intentCadastrese = new Intent(this, CadastroActivity.class);
            startActivityForResult(intentCadastrese, REQUEST_CODE_CADASTRESE);
        }
    }

    @Override
    public void irEsqueciASenha() {
        if (intentEsqueciASenha == null) {
            intentEsqueciASenha = new Intent(this, EsqueciASenhaActivity.class);
            startActivityForResult(intentEsqueciASenha, REQUEST_CODE_ESQUECI_A_SENHA);
        }
    }

    @Override
    public void irDashboard(Aluno aluno) {
        if (intentDashboard == null) {
            intentDashboard = new Intent(this, DashboardActivity.class);
            intentDashboard.putExtra(DashboardActivity.EXTRA_ALUNO, aluno);
            startActivityForResult(intentDashboard, REQUEST_CODE_DASHBOARD);
        }
    }

    @Override
    public String obterPreferencesEmail() {
        return preferences.getString(P.PREFERENCES_USUARIO_EMAIL, P.STRING_NULL);
    }

    @Override
    public String obterPreferencesSenha() {
        return preferences.getString(P.PREFERENCES_USUARIO_SENHA, P.STRING_NULL);
    }
}